package bonus;

import java.util.LinkedList;
import java.util.List;
import java.util.Set;
import java.util.Stack;

import tablero.Ciudad;
import tablero.NombreRegion;
import tablero.Tablero;

import jugador.Jugador;

public class BonusBaiern extends Bonus
{
	private Stack <Integer> pilaBaiern;
	public BonusBaiern()
	{
		pilaBaiern = new Stack<Integer>();
		pilaBaiern.addElement(new Integer(2));
		pilaBaiern.addElement(new Integer(3));
		pilaBaiern.addElement(new Integer(4));
		pilaBaiern.addElement(new Integer(5));
	}
	@Override
	boolean cumple(Jugador j) {
		if (pilaBaiern.isEmpty())
			return false;
		boolean enc = false;
		List<Ciudad> listaCiudadConOficinas = new LinkedList<Ciudad>();
		Set<Ciudad> s =	j.getOficinasColocadas().keySet();
		for (Ciudad c: s){
			listaCiudadConOficinas.add(c);
		}
		List<Ciudad> ciudadesBaiern = Tablero.getInstance().getCiudadesRegion(NombreRegion.Baiern);
		
		if (listaCiudadConOficinas.containsAll(ciudadesBaiern)){
			enc = true;
		}
		return enc;
	}
	@Override
	Integer vaciarPila(Jugador j) {
		return pilaBaiern.pop();
	}

}
